package com.jietuo.class02;

import java.util.LinkedList;
import java.util.Queue;

/**
 * @author zhangx & jietuo_zx@163.com
 * @version 1.0
 * @date 2024/3/1
 * @description: 7，用队列结构实现栈结构
 */
public class Code07_QueueToStack {

    public static class MyStack<T> {
        private Queue<T> data;
        private Queue<T> help;

        public MyStack() {
            data = new LinkedList<T>();
            help = new LinkedList<T>();
        }

        public void put(T data) {
            // 先进后出
            this.data.add(data);
        }

        public T pop() {
            // 需要先将data队列中的数据
            while (data.size() > 1) {
                help.add(data.poll());
            }
            // 弹出队列的元素
            T dest = data.poll();
            //在将help里面的元素导入到data中
            while (help.size() > 0) {
                data.add(help.poll());
            }
            return dest;
        }
    }
}
